//
//  main.c
//  C_12线程
//
//  Created by Robin on 16/3/22.
//  Copyright © 2016年 cnbm. All rights reserved.
//

#include <stdio.h>
#include <stdlib.h>
#include <signal.h>
#include <pthread.h>
#include <string.h>
#include <unistd.h>
#include <errno.h>

void error (char *msg){
    fprintf(stderr, "%s:%s\n",msg,strerror(errno));
    exit(1);
}
void * does_not (void *a){
    
    for (int i=0; i<5; i++) {
        sleep(1);
        puts("Does not!");
    }
    
    return NULL;
}

void * does_too (void *b){
    for (int i=0; i<9; i++) {
        sleep(1);
        puts("Does too!");
    }
    
    return NULL;
}
int main(int argc, const char * argv[]) {

    pthread_t t0;
    pthread_t t1;
    
    if (pthread_create(&t0, NULL, does_not, NULL) == -1) {
        error("无法创建线程 t0");
    }
    
    if (pthread_create(&t1, NULL, does_too, NULL) == -1) {
        error("无法创建线程 t1");
    }
    
    void *result; // 函数返回的指针保存在这里
    if (pthread_join(t0, &result) == -1) {
        error("无法回收线程 t0");
    }
    if (pthread_join(t1, &result) == -1) {
        error("无法回收线程 t1");
    }
    
    
    return 0;
}
